package isg.etsii.ull.es;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class AnuncioDAO {
	
	Connection conn = null;

	public AnuncioDAO() throws ClassNotFoundException, SQLException {
		Class.forName("org.postgresql.Driver");
	
		// Localhost
		/*
		String url = "jdbc:postgresql://localhost:5432";
		String usuario = "postgres";
		String clave = "toyota";
		*/
		
		/*String url = "jdbc:postgresql://localhost:5432";
		String usuario = "postgres";
		String clave = "mederos";*/
		
		String url = "jdbc:postgresql://localhost:5432";
		String usuario = "postgres";
		String clave = "varela";
		
		// Para el cc
		
		/*String url = "jdbc:postgresql://banot.etsii.ull.es/isg0910e6";
		String usuario = "isg0910e6";
		String clave = "4PA9fC";*/
		
		conn = DriverManager.getConnection(url, usuario, clave);
	}
	public int nuevo(Anuncio a) throws SQLException {		
		String sql = "INSERT INTO ANUNCIO (DNI, ID, FechaInicial,FechaFinal) VALUES (?,?,?,?)";
		
		PreparedStatement stm = conn.prepareStatement(sql);
		
		stm.setString( 1, a.getDni());
		stm.setInt(2 , a.getIdPropiedad());
		stm.setString(3, a.getFInicial() );
		stm.setString(4, a.getFFinal());


		int i = stm.executeUpdate();
		
		// try catch si falla IMPORTANTE
		
		return i; // indica el número de registros insertados
	}
	public ArrayList<Anuncio> listarTodos(String dni) throws SQLException {
		String sql = "SELECT * FROM ANUNCIO WHERE DNI = '" + dni + "';";

		Statement stm = conn.createStatement();

		ResultSet rs = stm.executeQuery(sql);

		ArrayList<Anuncio> listaAnuncios = new ArrayList<Anuncio>();

		while (rs.next()) {

		Anuncio a = new Anuncio();

		a.setIdPropiedad(rs.getInt("ID"));

		a.setDni(rs.getString("DNI"));

		a.setFInicial(rs.getString("FECHAINICIAL"));
		a.setFFinal(rs.getString("FECHAFINAL"));
		listaAnuncios.add(a);

		}

		return listaAnuncios;

		}
	
	public ArrayList<Anuncio> listarTodostipo(String tipo) throws SQLException {
		String sql = "SELECT * FROM ANUNCIO WHERE tipo = '" + tipo + "';";

		Statement stm = conn.createStatement();

		ResultSet rs = stm.executeQuery(sql);

		ArrayList<Anuncio> listaAnuncios = new ArrayList<Anuncio>();

		while (rs.next()) {

		Anuncio a = new Anuncio();

		a.setIdPropiedad(rs.getInt("ID"));

		a.setDni(rs.getString("DNI"));

		a.setFInicial(rs.getString("FECHAINICIAL"));
		a.setFFinal(rs.getString("FECHAFINAL"));
		listaAnuncios.add(a);

		}

		return listaAnuncios;

		}

}
